package cn.bannerplayerlibrary.view.newbanner;

import android.view.View;
import android.widget.ImageView;

import cn.bannerplayerlibrary.WeakHandler;
import cn.bannerplayerlibrary.data.BannerData;
import cn.bannerplayerlibrary.view.PlayAttrs;

public interface NewBannerPlayerView extends Comparable<NewBannerPlayerView> {

    interface PlayListener {

        /**
         * 一个媒体播放完毕
         */
        void onPlayComplete(NewBannerPlayerView view);

        /**
         * 播放出现异常
         *
         * @param view
         */
        void onPlayError(NewBannerPlayerView view);
    }

    /**
     * 设置监听
     *
     * @param listener
     */
    void setListener(PlayListener listener);

    /**
     * 获取图片控件
     *
     * @return
     */
    ImageView getImageView();

    /**
     * 设置数据
     *
     * @param data
     */
    void setData(BannerData data);

    void setIndex(int index);

    int getIndex();

    /**
     * 获取数据
     *
     * @return
     */
    BannerData getData();

    /**
     * 准备加载图片/视频
     */
    void prepare();

    /**
     * 播放
     */
    void play();

    /**
     * 停止
     */
    void stop();


    /**
     * 暂停
     */
    void pause();

    /**
     * 开始
     */
    void resume();

    /**
     * 销毁
     */
    void release();

    /**
     * 获取这个控件
     *
     * @return
     */
    View getSelf();


    /**
     * 是否在正在播放（含播放和暂停）
     *
     * @return
     */
    boolean isPlaying();

    void setConfig(PlayAttrs playAttrs, WeakHandler handler);
    void  setPlayTag(String playTag);
}
